1. Field of the Invention
The present invention relates to the field of communications systems. More specifically, the present invention relates to improvements in channel-coding.
2. Brief Description of the Related Art
In communication systems, researchers and developers have sought ways to protect transmitted data from loss during transmission. One method of protecting transmitted data is channel-coding. Channel-coding involves adding redundant bits to the original data so that the receiver of a noisy or disruptive channel can detect and correct bit errors caused by the channel. Further detail is described in Siegmund M. Redl, et al., An Introduction to GSM, 110, 113 (1995). Two general methods of channel-coding are discussed in this description: block-coding and convolutional coding.
In block-coding, parity bits are added to the end of the data bits to be transmitted. Parity bits are used to check whether the data bits received contain errors. The number of parity bits added depends on the desired level of error-detection. Convolutional coding, as well understood in the art, involves applying a function to incoming bits to provide additional bits for transmission. Convolutional encoding allows for the proper reconstruction of the data stream at the receiving end, even though some bits may be corrupted during transmission.
When channel-coded data is received, the coded data must be decoded. Decoding processes that use the Viterbi algorithm rely upon the proper identification of the terminating state of the convolutional encoding. The failure to correctly identify the terminating state results in an improper decoding, and an improper data bit stream. The terminating state can be pre-defined by adding predefined tail bits to the bit stream before convolutional coding. This is a popular method in communication systems, and particularly in wireless systems, because the terminating state is known. The tail bits, however, are overhead to the communication system because the tail bits use bandwidth and do not provide error detection or correction.
Communication system designs attempt to reduce overhead, save bandwidth, improve efficiency, and improve the information bit rate. Due to the restricted transmission capacity allocated to communications systems, minimizing the number of bits needed for transmission is desirable. Tail bits, however, reduce the capacity of the system.
This efficiency loss is even greater when the number of information bits in a transmitted package is small, such as in voice data transmissions. For example, if there are 100 data bits and 3 tail bits to be transmitted, the percent of overhead is 3/103 or roughly 3%--small overhead. But if there are 10 data bits and 3 tail bits to be transmitted, the percent of overhead is 3/13 or roughly 23.1%--large overhead.
Sometimes, parity bits (an error detection code) are placed at the end of the information burst. Because the parity bits vary with each frame, the terminating state is not pre-defined as with the use of tail bits. Accordingly, the terminating state of the convolutional decoder is determined by using a number of trials, as well known in the art.
Accordingly, the use of parity bits is not, however, error free. Because the parity bits are limited in number, different data streams can result in the same parity bits. False PASS indications can result from the error detection process. The major cause of false PASS indications from the error detection process is the wide range that the parity bits vary with different trials of the terminating state. The greater the range that the parity bits may vary, the larger the probability of a false PASS detection. The large probability of false PASS detection can severely degrade the quality of communication service, such as degraded voice quality.